Page Index
40 一 生产环境部署(centos7)推荐
JL 于 2024-01-04 15:38:21 +08:00 修改了此页面
此文件含有模棱两可的 Unicode 字符

此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。

输入图片说明
阿里云领取¥2000红包,服务器低至¥91.80/年

JooLun版本

  • V2.7.0+

请严格按照教程操作;不要自己改库名、改包名、改服务端口,教程上没有说的就不要动,这样出了问题我们才好给你排查,等你熟悉项目了再改也不迟;因自己改了教程之外的东西出了问题来咨询技术的,我们都不受理

环境准备(注意版本)

  • centos7服务器一台带公网IP最低要求配置2核CPU+6G内存+5M带宽,具体看自己业务量;👍推荐服务器),禁止用虚拟机
  • MySql8MySql版本至少5.7或者5.7+,强烈推荐mysql8,建议安装在本机或同一局域网,否则可能会因为网络问题引起超时
  • Redis建议安装在本机或同一局域网,否则可能会因为网络问题引起超时
  • JDK8
  • nginx
  • 阿里OSS、七牛云、minio、腾讯cos 四选一
  • 域名一个
  • 给域名申请https证书
  • 申请好小程序一个
  • 申请好微信支付商户一个
  • 快递100key一个
  • 必须保证机器的外部网络是通的

后端部署

  • 服务器安装mysql8、redis自行百度

  • 导入数据库joolun/db

  • 服务器hosts配置

    • 特别说明请一定要按此步骤配置hosts,禁止修改代码中配置成IP或localhost
    • hosts配置完成后,逐个ping base-xx 确认可以使用!

    # vi /etc/hosts

    127.0.0.1 base-nacos
    
    127.0.0.1 base-gateway
    
    127.0.0.1 base-redis
    
    127.0.0.1 base-mysql
    
  • 用idea打包

    先在Maven操作界面找到项目的root主目录下的Lifecycle,点击clean,clean完成后点击install,如下图

  • 打包完成后,将整个joolun主目录上传到服务器,目录自建

    注:.out是日志文件在启动后会生成

  • 将nacos配置文件中的数据库账号密码改成生产环境的joolun/server/nacos-server/conf/application.properties

  • cd到joolun主目录

  • 先启动nacos,nacos要一直运行不要关了第一次启动先用sh server/nacos-server/bin/startup.sh -m standalone在控制台中运用,这样方便看报错,确定启动没问题了,再用nohup命令后台运用,确保日志文件/server/nacos-server/logs/start.out无报错nacos才算启动成功

    # nohup sh server/nacos-server/bin/startup.sh -m standalone >base-nacos.out &
    
  • 如果报case "uname`" in错误启动不了,转一下startup.sh文件格式就可以了

  • nacos启动成功后,浏览器中打开http://IP:8848/nacos/index.html 账号密码nacos/nacos生产环境记得修改初始密码,如访问不了检查下防火墙是否开放了8848端口

  • nacos控制台中修改相关密码 application-dev.yml修改redis密码

    base-auth-dev.yml、base-codegen-dev.yml、base-upms-admin-dev.yml、base-weixin-admin-dev.yml、base-mall-admin-dev.yml修改mysql账号、密码,将root换成自己的账号密码

    注意冒号后面要带一个空格

  • 商城版还需修改回调地址、快递100授权码等配置base-mall-admin-dev.yml;回调地址为nginx中配置的http地址即后台的访问地址,也可以直接设为网关默认端口9999地址。快递100https协议好像不支持,收不到回调

    回调地址要外网能访问,不然收不到支付结果、退款结果、物流信息等,快递100的授权码自行申请

  • 逐个启动服务

    启动前清理下redis

    如果之前启动过,一定要先kill掉之前的进程再启新的,同一个服务不要启多次

    通过以下命令查看是否有服务启动,有则kill -9杀掉

    # ps -ef|grep base-

    注意启动顺序
    # nohup java -Xms128m -Xmx512m -jar base-gateway/target/base-gateway.jar >base-gateway.out &
    # nohup java -Xms128m -Xmx512m -jar base-auth/target/base-auth.jar >base-auth.out &
    # nohup java -Xms128m -Xmx512m -jar base-upms/base-upms-admin/target/base-upms-admin.jar >base-upms.out &
    # nohup java -Xms128m -Xmx512m -jar base-weixin/base-weixin-admin/target/base-weixin-admin.jar >base-weixin-admin.out &
    # nohup java -Xms128m -Xmx512m -jar base-mall/base-mall-admin/target/base-mall-admin.jar >base-mall-admin.out &
    # nohup java -Xms128m -Xmx256m -jar base-codegen/target/base-codegen.jar >base-codegen.out &
    
  • 按顺序启动nacos -> base-gateway -> base-auth -> base-upms -> base-weixin -> base-mall

  • 查看每个服务的.out日志文件,看是否有报错,没有报错说明服务启动成功,如有报错请根据错误信息排查问题

前端部署

  • 安装nginx自行百度

  • 用WebStorm打包

    npm install --registry=https://registry.npm.taobao.org

    npm run build

  • 上传打包后的dist文件夹到/mnt/install/joolun-ui/目录下,目录自建

  • 到你的域名服务商平台将后台需要使用的域名对应下面nginx中要配置的server_name解析指向到你服务器的公网IP,不同服务商平台操作不同这里不做详细说明,不懂的可以联系自己的服务商或百度

  • 修改nginx配置

    #vi /etc/nginx/conf.d/default.conf

    不同版本的nginx配置文件有所不同根据自己实际版本操作

    在http {}标签中增加一个80的server,server_name换成自己的域名,代码如下

    server {
            listen       80;
            server_name  demo.joolun.com;
    
            # For WebSocket upgrade header
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
    
            # 打包好的dist目录
            root /mnt/install/joolun-ui/dist/;
    
            location ~* ^/(auth|code|admin|gen|weixin|mall|doc|webjars|swagger-resources|upms) {
               proxy_pass http://127.0.0.1:9999;
               #proxy_set_header Host $http_host;
               proxy_connect_timeout 15s;
               proxy_send_timeout 300s;
               proxy_read_timeout 300s;
               proxy_set_header X-Real-IP $remote_addr;
               proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            }
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
            if ($request_uri ~ "/actuator"){
                return 403;
            }
        }
    
  • 启动nginx

    # systemctl start nginx.service

  • 后台访问

    浏览器中输入配置的server_name域名即可访问后台了

小程序端部署

  • 由于小程序官方规定所有请求必需是https协议,所以我们要开启https,通过nginx实现

    1. 申请ssl证书,推荐阿里云的,下载nginx类型的证书

    2. #vi /etc/nginx/conf.d/default.conf

      在http {}标签中增加一个443 ssl的server,和上面的80server并列,代码如下

      443做为https端口,server_name换成自己的域名

      server {
              listen       443 ssl;
              server_name  demo.joolun.com;
              #证书的路径
              ssl_certificate      /mnt/install/ssl/2881620_demo.joolun.com.pem;
              ssl_certificate_key  /mnt/install/ssl/2881620_demo.joolun.com.key;
      
              ssl_session_cache    shared:SSL:1m;
              ssl_session_timeout  5m;
      
              ssl_ciphers  HIGH:!aNULL:!MD5;
              ssl_prefer_server_ciphers  on;
      
              # 打包好的dist目录文件目录
              root /mnt/install/joolun-ui/dist/;
      
              location ~* ^/(auth|code|admin|gen|weixin|mall|doc|webjars|swagger-resources|upms) {
                 proxy_pass http://127.0.0.1:9999;
                 proxy_connect_timeout 15s;
                 proxy_send_timeout 300s;
                 proxy_read_timeout 300s;
                 proxy_set_header X-Real-IP $remote_addr;
                 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      
                 # For WebSocket upgrade header
                 proxy_http_version 1.1;
                 proxy_set_header Upgrade $http_upgrade;
                 proxy_set_header Connection "upgrade";
              }
          }
      
  • 微信公众平台设置服务器域名

    将你nginx中https配置的域名添加到域名列表中配置完后,微信开发者工具要重启才能生效

  • 后台【小程序管理】中增加自己的小程序账号

    注:微信支付商户号请自行申请,如果不填或乱填将无法下单

    小程序申请地址:https://mp.weixin.qq.com/

    微信支付申请地址:https://pay.weixin.qq.com/index.php/core/home/login?return_url=%2F

  • 微信支付平台账号关联小程序AppID绑定

  • 将小程序joolun-ma代码,导入到微信开发者工具

  • 个人小程序或没有直播功能的小程序运行时会报“插件未授权使用”,删除直播插件即可

  • 修改配置文件joolun-ma/config/env.js中的服务器地址,改为上面的生产环境地址,必须https协议

  • 关闭微信开发者工具的不校验合法域名(把勾去掉)

  • 编译小程序

    看小程序能否成功加载出数据

  • 修改回调地址等相关配置nacos中的base-mall-admin-dev.yml,修改后要重启base-mall服务才能生效

    回调地址可以直接设为网关默认端口9999地址,也可以是后台的访问地址默认端口8082,ip、域名均可

    回调地址要外网能访问,不然收不到支付结果、退款结果、物流信息等,快递100的授权码自行申请

  • 小程序成功加载出数据后即可上传小程序代码

  • 上传成功后登录微信公众平台,配置隐私协议、小程序订单中心path,提交审核

  • 待微信官方审核通过后,发布代码

  • 商城版需要将redis的key过期推送功能打开,否则订单无法自动取消自行百度redis的key过期推送怎么打开